Log in Register Dashboard Temp Share Shortlinks Frames API

HTMLify

app.js
Views: 10 | Author: cody
jQuery(document).ready(function (event) {
  var projectsContainer = $(".cd-projects-container"),
    navigation = $(".cd-primary-nav"),
    triggerNav = $(".cd-nav-trigger"),
    logo = $(".cd-logo");

  triggerNav.on("click", function () {
    if (triggerNav.hasClass("project-open")) {
      //close project
      projectsContainer
        .removeClass("project-open")
        .find(".selected")
        .removeClass("selected")
        .one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend", function () {
          $(this).children(".cd-project-info").scrollTop(0).removeClass("has-boxshadow");
        });
      triggerNav.add(logo).removeClass("project-open");
    } else {
      //trigger navigation visibility
      triggerNav.add(projectsContainer).add(navigation).toggleClass("nav-open");
    }
  });

  projectsContainer.on("click", ".single-project", function () {
    var selectedProject = $(this);
    if (projectsContainer.hasClass("nav-open")) {
      //close navigation
      triggerNav.add(projectsContainer).add(navigation).removeClass("nav-open");
    } else {
      //open project
      selectedProject.addClass("selected");
      projectsContainer.add(triggerNav).add(logo).addClass("project-open");
    }
  });

  projectsContainer.on("click", ".cd-scroll", function () {
    //scroll down when clicking on the .cd-scroll arrow
    var visibleProjectContent = projectsContainer.find(".selected").children(".cd-project-info"),
      windowHeight = $(window).height();

    visibleProjectContent.animate({ scrollTop: windowHeight }, 300);
  });

  //add/remove the .has-boxshadow to the project content while scrolling
  var scrolling = false;
  projectsContainer.find(".cd-project-info").on("scroll", function () {
    if (!scrolling) {
      !window.requestAnimationFrame ? setTimeout(updateProjectContent, 300) : window.requestAnimationFrame(updateProjectContent);
      scrolling = true;
    }
  });

  function updateProjectContent() {
    var visibleProject = projectsContainer.find(".selected").children(".cd-project-info"),
      scrollTop = visibleProject.scrollTop();
    scrollTop > 0 ? visibleProject.addClass("has-boxshadow") : visibleProject.removeClass("has-boxshadow");
    scrolling = false;
  }
});

Comments